package VWorldGameStudio;

import FCRendering.FCRMaster;
import Frame.battleanimation.ABattleAni;

import java.util.Random;
import java.util.concurrent.CopyOnWriteArrayList;

//相当于战斗的帧动画编排
public class FCBattleOrder extends Sprite{

    public FCBattleOrder(){
        float[] floats = FCRMaster.fcv.getRandomVs();
        randomV1 = floats[0];//怪物指令，用来选技能 角色指令，臭弹变化随机
        randomV2 = floats[1];//怪物指令，敌死亡后重找敌目标和命中判断  角色指令，命中判断使用
        randomV3 = floats[2];//怪物指令，逃跑判断   角色指令，臭弹变那个弹判断，攻击暴击判断 和投掷物暴击判断
        randomV4 = floats[3];//怪物指令，查找敌目标  角色指令，逃跑几率和属性状态判断
    }

    //我们要根据速度来排序
    public int battleSpeed;

    /**
     * 战斗帧类型，
     *1 是徒手攻击操作的，会按FCPlayerBattleWrap的选中决定 （比如逃跑，战斗等）
     *
     *2 是怪攻击操作， 怪的操作要提前同步一样的
     */
    public int battleType = 0;

    //操作的怪物编号，
    public int monsterNum = 0;

    //怪物给自己同伴使用回复性道具时,设定怪物技能不能给同伴使用，但恢复性食物饮料道具就能咯
    public int monsterUseItemToMonsterNum = -1;
    /**
     * 怪物的行为
     * 主攻击 1，副攻击 2  特殊攻击 3 使用道具 4 逃跑了 5  由于武器全损的原地不动 6, 混乱中，静止不动 7
     * 定义
     */
    public int monsterAttackType = 0;

    //定义要是monsterAttackType等3时这里就有效,使用怪物自带的道具的第几个物品
    public int monsterUseItemIndex = 0;

    //操作人
    public String playerUid;

    public String playerName;


    //就是这个指令要动画n次刷新的意思
    public int frameTimes = 40;

    //逃跑几率，每一个指令的操作都是从主机发过来的，所以有随机系数都要固定，让结果一致性0-1之间
    public float randomV1 = 0;
    public float randomV2 = 0;
    public float randomV3 = 0;
    public float randomV4 = 0;
    public CopyOnWriteArrayList<ABattleAni> battleAnis = null;

    public String toString(){
        return "battleType "+battleType+" battleSpeed "+battleSpeed+" playerUid "+playerUid+" playerName "+playerName+" monsterNum "+monsterNum;
    }

}
